#include<string>
#include<vector>
#include<map>
#include<algorithm>
#include<functional>
namespace ParseStringUtil{
    void SplitLine(const std::string& source,const std::string& seq,std::vector<std::string>& dst){
        size_t  pos=0;
        while (true)
        {
            size_t findpos=source.find(seq,pos);
            if(findpos!=std::string::npos){
                dst.emplace_back(source.substr(pos,findpos-pos));
                pos=findpos+seq.size();
            }
            else{
                break;
            }
        }
        if(pos!=source.size()){
            dst.emplace_back(source.substr(pos,source.size()-pos));
        }
    }
    void SplitHeadLine(const std::string& source,const std::string& seq,std::map<std::string,std::string>& dst){
        std::vector<std::string> _dst;
        SplitLine(source,seq,_dst);
        if(_dst.size()%2!=0){
            MassageLog(WARING,"解析报头出错，键值对不匹配",__FILE__,__LINE__);
        }
        for (int i = 0; i < _dst.size(); i++)
        {
            std::transform(_dst[i].begin(),_dst[i].end(),_dst[i].begin(),::tolower);
        }
        
        for (int i = 0; i < _dst.size()/2; i++)
        {
            dst[_dst[i*2]]=_dst[i*2+1];
        }
    }
    void ParseMathodHead(std::string& source,std::string& MathodSeq,std::string& Headseq,
    std::string& Splitseq,std::vector<std::string>&DstContext,std::map<std::string,std::string>& HeadContext){

    }
}

